home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 88 / 088.d81 / getword source < prev    next >
Text File  |  2022-08-26  |  2KB  |  209 lines

  1. open =$ffc0
  2. readst =$ffb7
  3. setlfs =$ffba
  4. setnam =$ffbd
  5. load =$ffd5
  6. getin =$ffe4
  7. clrchn =$ffcc
  8. close =$ffc3   ;a
  9. chrin =$ffcf
  10. chkout =$ffc9  ;x
  11. chkin =$ffc6   ;x
  12. plot =$fff0
  13. chrout =$ffd2
  14. color'pointer =243
  15. screen'line'pointer =209
  16. print'number =$bdcd ;x,a
  17. clear'line =59903
  18. background =53281
  19. border =53280
  20. unlisten =$ffae
  21. clall =$ffe7
  22. ;dis
  23. .org $800
  24. .obj "getword 800"
  25. jmp alpha
  26. lda #16
  27. sta mode
  28. jmp start
  29.  
  30. alpha lda #vallength
  31. sta mode
  32.  
  33. start jsr get'number
  34. sta text
  35. jsr get'number
  36. sta highlight
  37. jsr get'number
  38. and #127
  39. sta limit
  40.  
  41. lda #0
  42. sta 56328  ;rem start timer if not on
  43. sta counter
  44. sta length
  45. jsr print'cursor
  46.  
  47. get'key jsr getin
  48. bne key'pressed
  49. lda 56328
  50. cmp old'time
  51. beq get'key
  52.  
  53. increment sta old'time
  54. inc counter
  55. lda counter
  56. cmp #3
  57. bne get'key
  58. lda #0
  59. sta counter
  60. lda 251
  61. beq +
  62. jsr un'print'cursor
  63. jmp get'key
  64. + jsr print'cursor
  65. jmp get'key
  66.  
  67. key'pressed sta temp
  68. ldx length
  69. beq check'valid
  70. cpx limit
  71. bcc check'valid
  72.  
  73. cmp #13
  74. beq return
  75.  
  76. cmp #20
  77. beq delete
  78.  
  79. bne get'key
  80.  
  81. check'valid ldy #0
  82.  
  83. - lda validation'string,y
  84. cmp temp
  85. beq found'it
  86. iny
  87. cpy mode
  88. bne -
  89. beq get'key
  90.  
  91. found'it lda temp
  92. cmp #13
  93. beq return
  94. cmp #20
  95. beq delete
  96.  
  97. inc length
  98. lda temp
  99. jsr chrout
  100. jsr print'cursor
  101. ldy length
  102. lda temp
  103. sta string,y
  104. jmp get'key
  105.  
  106. return lda length
  107. sta 252
  108. sta wlength
  109. ldx <string'name
  110. ldy >string'name
  111. jsr locvar
  112. lda <wlength
  113. ldy >wlength
  114. jsr set'string
  115.  
  116. jmp un'print'cursor
  117.  
  118. delete lda length
  119. bne +
  120. jmp get'key
  121. + dec length
  122. lda #157
  123. jsr chrout
  124. lda " "
  125. jsr chrout
  126. jsr chrout
  127. lda #157
  128. jsr chrout
  129. jsr chrout
  130. jsr print'cursor
  131. jmp get'key
  132.  
  133. print'cursor lda #1
  134. sta 251
  135. sta 199
  136. lda highlight
  137. sta 646
  138. lda #32
  139. jsr chrout
  140. lda #0
  141. sta 199
  142. lda text
  143. sta 646
  144. lda #157
  145. jmp chrout
  146.  
  147. un'print'cursor lda #0
  148. sta 251
  149. sta 199
  150. lda #32
  151. jsr chrout
  152. lda #0
  153. sta 199
  154. lda text
  155. sta 646
  156. lda #157
  157. jmp chrout
  158.  
  159. ;x and y point to string name
  160.  
  161. locvar lda $7a
  162. pha
  163. lda $7b
  164. pha
  165. stx $7a
  166. sty $7b
  167. jsr $b08b
  168. sta $49
  169. sty $4a
  170. pla
  171. sta $7b
  172. pla
  173. sta $7a
  174. rts
  175.  
  176. set'string sta $64
  177. sty $65
  178. jmp $aa52
  179.  
  180. ;**** get number from BASIC ****
  181.  
  182. get'number jsr $aefd
  183. jsr $ad8a
  184. jsr $b7f7
  185. lda $14  ; got low byte
  186. rts
  187.  
  188. highlight .byt 0
  189. text .byt 0
  190. limit .byt 0
  191. length .byt 0
  192. mode .byt 0
  193.  
  194. validation'string .byt 13,20:.asc ".+-$1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  195. .asc " \!#$%&'()^*/:="
  196.  
  197. temp .byt 0
  198. counter .byt 0
  199. found .byt 0
  200. xpos .byt 0
  201. ypos .byt 0
  202. old'time .byt 0
  203. string'name .asc "w$":.byt 0
  204. wlength .byt 0
  205. .word string+1
  206. string .buf 128
  207. vallength =temp-validation'string
  208.  
  209.